//3．极坐标用向量的模（即向量的长度）和向量相对x轴逆时针旋转的角度来描述该向量。
//直角坐标用向量的x轴和y轴的坐标来描述该向量（见图16.3）。编写一个程序，
//读取向量的模和角度（单位：度），然后显示x轴和y轴的坐标。
//相关方程如下：
//      x=r*cosA    y=r*sinA
//需要一个函数来完成转换，
//该函数接受一个包含极坐标的结构，并返回一个包含直角坐标的结构（或返回指向该结构的指针）。

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <assert.h>

typedef struct coordinate {
    double x;
    double y;
} coord;

typedef struct polarcoord {
    double r;
    double angle;
} polar;

coord *polar_to_coord(polar *polar);

int main(void){
    polar p = {4.0, 45.0};
    coord *coord1 = polar_to_coord(&p);
    free(coord1);
    return 0;
}

coord *polar_to_coord(polar *polar){
    coord *cp = (coord *) malloc(sizeof(coord));
    cp->x = polar->r * cos(polar->angle);
    cp->y = polar->r * sin(polar->angle);
    return cp;
}